package com.situ.mall.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.situ.mall.entity.Cart;
import com.situ.mall.mapper.CartMapper;
import com.situ.mall.service.ICartService;

@Service
public class CartServiceImpl implements ICartService{
	
	@Autowired
	private CartMapper cartMapper;

//前台
	// 1.product_list.jsp  加入购物车（插入cart表）
	@Override
	public boolean insertCart(Cart cart) {
		System.out.println("CartServiceImpl.insertCart()");
		int count = 0;
		//1.先查一下   购物车 有木有这个这个商品
			//2. 有，根据查到的这条商品cartItem的id,更新 加上前台传来的quantity
			// update quantity=quantity+cart.getQuantity(前台传过来的quantity加上几)  where id=刚才查到的那个cartItem的id
		
		Cart selectCartItem =  cartMapper.selectCartItemByCartIdAndUserId(cart.getProductId(),cart.getUserId());
		
		if (selectCartItem != null) {					 //根据查到的这条商品cartItem的id    更新 加上前台传来的quantity
			count = cartMapper.updateCartItemQuantityByCartId(selectCartItem.getId(), cart.getQuantity());
		}else {
			count = cartMapper.insert(cart);
		}

		return count==1 ? true:false;
	}

	// 2. product_list.jsp -->  点我的购物车(根据 userId 用户id) -->cart_list.jsp购物车页面 所有商品  (cart表里的全部内容)
	@Override
	public List<Cart> selectCartListByUserId(Integer userId) {
		System.out.println("CartServiceImpl.selectCartListByUserId()");
		return cartMapper.selectCartListByUserId(userId);
	}

	// 3. 2020.03.20：:删除 购物车的商品   （删除cart表  by cartId）（deleteCartItemByCartId）  
	@Override
	public boolean deleteCartItemByCartId(Integer cartId) {
		System.out.println("CartServiceImpl.deleteCartItemByCartId()");
		System.out.println(cartId);
		
		int count = cartMapper.deleteByPrimaryKey(cartId);
		
		return count==1 ? true:false;
	}

	// 4. 2020.03.20  修改 购物车内 商品的数量（update cart表的quantity字段）  
	@Override
	public boolean updateCartItemQuantityByCartId(Integer cartId, Integer addOrSub) {
		System.out.println("CartServiceImpl.updateCartItemQuantityByCartId()");
		System.out.println("addOrSub：" + addOrSub);
		
		int count = cartMapper.updateCartItemQuantityByCartId(cartId, addOrSub);
		
		return  count==1 ? true:false;
	}

	//5.购物车页面 cart_list.jsp :复选框  选中checked=1，未选中checked=0
	@Override
	public boolean updateCartItemCheckStatusByCartId(Integer cartId, Integer checked) {
		System.out.println("CartServiceImpl.updateCartItemCheckStatusByCartId()");
		
		int count = cartMapper.updateCartItemCheckStatusByCartId(cartId, checked);
		
		return count==1 ? true:false ;
	}
	

//订单页面 order_confirm.jsp
	
	//1. cart_list结算 --》 order_confirm 获取 用户的      所有地址by userId & 所有购物车 选中的商品by userId checked=1
	@Override
	public List<Cart> selectOrderConfirmCartListByUserIdAndChecked(Integer userId, Integer checked) {
		System.out.println("CartServiceImpl.selectOrderConfirmCartListByUserIdAndChecked()");
		
		List<Cart> cartList = cartMapper.selectOrderConfirmCartListByUserIdAndChecked(userId,checked);
		return cartList;
	}

}
